﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharpArch.Core.PersistenceSupport;
using SharpArch.Core.DomainModel;

namespace zeus.Core.RepositoryInterfaces
{
    public interface IUnidadRepository : IRepository<Unidad>
    {
        IList<Unidad> GetByUsuario(int UsuarioID);
                
        IList<Unidad> GetDisponiblesByGrupo(int ClienteID, Grupo grupo);

        IList<Unidad> GetSeleccionadosByGrupo(int ClienteID, Grupo grupo);

        IList<Unidad> GetDisponiblesByPlan(int ClienteID, PlanCliente planCliente);

        IList<Unidad> GetSeleccionadosByPlan(int ClienteID, PlanCliente planCliente);


        int GetNumeroUnidad(int id);



        /// <summary>
        /// Recuperar las unidades por nombre
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        IList<Unidad> GetByNombre(string nombre, int clienteId);

        /// <summary>
        /// Recuperar las unidades por codigo del cliente
        /// </summary>
        /// <param name="clienteId"></param>
        /// <returns></returns>
        IList<Unidad> GetByCliente(int clienteId);
        IList<Unidad> GetByClienteUbicacion();

    }
}
